{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import warnings\n",
    "\n",
    "def fxn():\n",
    "    warnings.warn(\"deprecated\", DeprecationWarning)\n",
    "\n",
    "with warnings.catch_warnings():\n",
    "    warnings.simplefilter(\"ignore\")\n",
    "    fxn()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/shuyu/Documents/Projects/anomaly-detection/anomaly-env/lib/python3.6/site-packages/pandas/compat/__init__.py:85: UserWarning: Could not import the lzma module. Your installed Python is incomplete. Attempting to use lzma compression will result in a RuntimeError.\n",
      "  warnings.warn(msg)\n",
      "/home/shuyu/Documents/Projects/anomaly-detection/anomaly-env/lib/python3.6/site-packages/pandas/compat/__init__.py:85: UserWarning: Could not import the lzma module. Your installed Python is incomplete. Attempting to use lzma compression will result in a RuntimeError.\n",
      "  warnings.warn(msg)\n"
     ]
    }
   ],
   "source": [
    "import tensorflow as tf\n",
    "import tensorflow_probability as tfp\n",
    "import numpy as np\n",
    "import matplotlib.pylab as plt\n",
    "from matplotlib.pyplot import plot, ion, show, savefig, cla, figure\n",
    "import random\n",
    "import time"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "os.environ[\"CUDA_DEVICE_ORDER\"]=\"PCI_BUS_ID\"   # see issue #152\n",
    "os.environ[\"CUDA_VISIBLE_DEVICES\"]=\"0\"\n",
    "\n",
    "import tensorflow as tf\n",
    "from data_loader import DataGenerator\n",
    "from models import VAEmodel, lstmKerasModel\n",
    "from trainers import vaeTrainer\n",
    "\n",
    "from utils import process_config, create_dirs, get_args"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['/device:GPU:0']\n"
     ]
    }
   ],
   "source": [
    "from tensorflow.python.client import device_lib\n",
    "\n",
    "def get_available_gpus():\n",
    "    local_device_protos = device_lib.list_local_devices()\n",
    "    return [x.name for x in local_device_protos if x.device_type == 'GPU']\n",
    "\n",
    "print(get_available_gpus())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /home/shuyu/Documents/Projects/VAE-LSTM-for-anomaly-detection/codes/base.py:62: The name tf.variable_scope is deprecated. Please use tf.compat.v1.variable_scope instead.\n",
      "\n",
      "WARNING:tensorflow:From /home/shuyu/Documents/Projects/VAE-LSTM-for-anomaly-detection/codes/base.py:64: The name tf.assign is deprecated. Please use tf.compat.v1.assign instead.\n",
      "\n",
      "WARNING:tensorflow:From /home/shuyu/Documents/Projects/VAE-LSTM-for-anomaly-detection/codes/models.py:25: The name tf.placeholder is deprecated. Please use tf.compat.v1.placeholder instead.\n",
      "\n",
      "WARNING:tensorflow:From /home/shuyu/Documents/Projects/anomaly-detection/anomaly-env/lib/python3.6/site-packages/tensorflow/python/data/util/random_seed.py:58: add_dispatch_support.<locals>.wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.where in 2.0, which has the same broadcast rule as np.where\n",
      "WARNING:tensorflow:From /home/shuyu/Documents/Projects/VAE-LSTM-for-anomaly-detection/codes/models.py:31: DatasetV1.make_initializable_iterator (from tensorflow.python.data.ops.dataset_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use `for ... in dataset:` to iterate over a dataset. If using `tf.estimator`, return the `Dataset` object directly from your input function. As a last resort, you can use `tf.compat.v1.data.make_initializable_iterator(dataset)`.\n",
      "WARNING:tensorflow:\n",
      "The TensorFlow contrib module will not be included in TensorFlow 2.0.\n",
      "For more information, please see:\n",
      "  * https://github.com/tensorflow/community/blob/master/rfcs/20180907-contrib-sunset.md\n",
      "  * https://github.com/tensorflow/addons\n",
      "  * https://github.com/tensorflow/io (for I/O related ops)\n",
      "If you depend on functionality not listed there, please file an issue.\n",
      "\n",
      "WARNING:tensorflow:From /home/shuyu/Documents/Projects/VAE-LSTM-for-anomaly-detection/codes/models.py:81: conv2d (from tensorflow.python.layers.convolutional) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use `tf.keras.layers.Conv2D` instead.\n",
      "WARNING:tensorflow:Entity <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f7714099828>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f7714099828>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "WARNING: Entity <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f7714099828>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f7714099828>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "conv_1: Tensor(\"encoder/conv2d/LeakyRelu:0\", shape=(?, 24, 1, 32), dtype=float32)\n",
      "WARNING:tensorflow:Entity <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bf28>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bf28>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "WARNING: Entity <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bf28>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bf28>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "conv_2: Tensor(\"encoder/conv2d_1/LeakyRelu:0\", shape=(?, 12, 1, 64), dtype=float32)\n",
      "WARNING:tensorflow:Entity <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bf28>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bf28>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "WARNING: Entity <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bf28>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bf28>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "conv_3: Tensor(\"encoder/conv2d_2/LeakyRelu:0\", shape=(?, 6, 1, 128), dtype=float32)\n",
      "WARNING:tensorflow:Entity <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bda0>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bda0>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "WARNING: Entity <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bda0>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bda0>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "conv_4: Tensor(\"encoder/conv2d_3/LeakyRelu:0\", shape=(?, 1, 1, 512), dtype=float32)\n",
      "WARNING:tensorflow:From /home/shuyu/Documents/Projects/VAE-LSTM-for-anomaly-detection/codes/models.py:141: flatten (from tensorflow.python.layers.core) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use keras.layers.flatten instead.\n",
      "WARNING:tensorflow:Entity <bound method Flatten.call of <tensorflow.python.layers.core.Flatten object at 0x7f761d964400>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Flatten.call of <tensorflow.python.layers.core.Flatten object at 0x7f761d964400>>: AttributeError: module 'gast' has no attribute 'Num'\n",
      "WARNING: Entity <bound method Flatten.call of <tensorflow.python.layers.core.Flatten object at 0x7f761d964400>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Flatten.call of <tensorflow.python.layers.core.Flatten object at 0x7f761d964400>>: AttributeError: module 'gast' has no attribute 'Num'\n",
      "WARNING:tensorflow:From /home/shuyu/Documents/Projects/VAE-LSTM-for-anomaly-detection/codes/models.py:145: dense (from tensorflow.python.layers.core) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use keras.layers.dense instead.\n",
      "WARNING:tensorflow:Entity <bound method Dense.call of <tensorflow.python.layers.core.Dense object at 0x7f761d964400>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Dense.call of <tensorflow.python.layers.core.Dense object at 0x7f761d964400>>: AssertionError: Bad argument number for Name: 3, expecting 4\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING: Entity <bound method Dense.call of <tensorflow.python.layers.core.Dense object at 0x7f761d964400>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Dense.call of <tensorflow.python.layers.core.Dense object at 0x7f761d964400>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "WARNING:tensorflow:Entity <bound method Dense.call of <tensorflow.python.layers.core.Dense object at 0x7f761d964400>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Dense.call of <tensorflow.python.layers.core.Dense object at 0x7f761d964400>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "WARNING: Entity <bound method Dense.call of <tensorflow.python.layers.core.Dense object at 0x7f761d964400>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Dense.call of <tensorflow.python.layers.core.Dense object at 0x7f761d964400>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "WARNING:tensorflow:Entity <bound method Dense.call of <tensorflow.python.layers.core.Dense object at 0x7f761d964400>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Dense.call of <tensorflow.python.layers.core.Dense object at 0x7f761d964400>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "WARNING: Entity <bound method Dense.call of <tensorflow.python.layers.core.Dense object at 0x7f761d964400>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Dense.call of <tensorflow.python.layers.core.Dense object at 0x7f761d964400>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "finish encoder: \n",
      "Tensor(\"encoder/MultivariateNormalDiag/sample/affine_linear_operator/forward/add:0\", shape=(?, 6), dtype=float32)\n",
      "\n",
      "\n",
      "WARNING:tensorflow:Entity <bound method Dense.call of <tensorflow.python.layers.core.Dense object at 0x7f765001bbe0>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Dense.call of <tensorflow.python.layers.core.Dense object at 0x7f765001bbe0>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "WARNING: Entity <bound method Dense.call of <tensorflow.python.layers.core.Dense object at 0x7f765001bbe0>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Dense.call of <tensorflow.python.layers.core.Dense object at 0x7f765001bbe0>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "WARNING:tensorflow:From /home/shuyu/Documents/Projects/anomaly-detection/anomaly-env/lib/python3.6/site-packages/tensorflow/python/ops/init_ops.py:1251: calling VarianceScaling.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Call initializer instance with the dtype argument instead of passing it to the constructor\n",
      "WARNING:tensorflow:Entity <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bc18>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bc18>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "WARNING: Entity <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bc18>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bc18>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "decoded_2 is: Tensor(\"decoder/Reshape_1:0\", shape=(?, 3, 1, 256), dtype=float32)\n",
      "WARNING:tensorflow:Entity <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bbe0>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bbe0>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "WARNING: Entity <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bbe0>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f765001bbe0>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "decoded_3 is: Tensor(\"decoder/Reshape_2:0\", shape=(?, 6, 1, 128), dtype=float32)\n",
      "WARNING:tensorflow:Entity <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f761d4e46a0>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f761d4e46a0>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "WARNING: Entity <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f761d4e46a0>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f761d4e46a0>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "decoded_4 is: Tensor(\"decoder/Reshape_3:0\", shape=(?, 24, 1, 32), dtype=float32)\n",
      "WARNING:tensorflow:Entity <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f761d46dda0>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f761d46dda0>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "WARNING: Entity <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f761d46dda0>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f761d46dda0>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "decoded_5 is: Tensor(\"decoder/Reshape_4:0\", shape=(?, 48, 1, 16), dtype=float32)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:Entity <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f761d3d2fd0>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f761d3d2fd0>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "WARNING: Entity <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f761d3d2fd0>> could not be transformed and will be executed as-is. Please report this to the AutgoGraph team. When filing the bug, set the verbosity to 10 (on Linux, `export AUTOGRAPH_VERBOSITY=10`) and attach the full output. Cause: converting <bound method Conv.call of <tensorflow.python.layers.convolutional.Conv2D object at 0x7f761d3d2fd0>>: AssertionError: Bad argument number for Name: 3, expecting 4\n",
      "decoded_6 is: Tensor(\"decoder/conv2d_4/BiasAdd:0\", shape=(?, 48, 1, 1), dtype=float32)\n",
      "finish decoder: \n",
      "Tensor(\"decoder/Reshape_5:0\", shape=(?, 48, 1), dtype=float32)\n",
      "\n",
      "\n",
      "sigma2: \n",
      "Tensor(\"sigma2_dataset/Square:0\", shape=(), dtype=float32)\n",
      "\n",
      "WARNING:tensorflow:From /home/shuyu/Documents/Projects/VAE-LSTM-for-anomaly-detection/codes/base.py:73: The name tf.log is deprecated. Please use tf.math.log instead.\n",
      "\n",
      "WARNING:tensorflow:From /home/shuyu/Documents/Projects/VAE-LSTM-for-anomaly-detection/codes/base.py:97: The name tf.get_collection is deprecated. Please use tf.compat.v1.get_collection instead.\n",
      "\n",
      "The total number of trainable parameters in the encoder model is: 437380\n",
      "The total number of trainable parameters in the decoder model is: 646897\n",
      "The total number of trainable parameters in the sigma2_dataset model is: 0\n",
      "Total number of trainable parameters in the VAE network is: 1084277\n",
      "WARNING:tensorflow:From /home/shuyu/Documents/Projects/VAE-LSTM-for-anomaly-detection/codes/base.py:110: The name tf.train.AdamOptimizer is deprecated. Please use tf.compat.v1.train.AdamOptimizer instead.\n",
      "\n",
      "gvs for dataset: [(<tf.Tensor 'gradients/encoder/conv2d/Conv2D_grad/tuple/control_dependency_1:0' shape=(3, 1, 1, 32) dtype=float32>, <tf.Variable 'encoder/conv2d/kernel:0' shape=(3, 1, 1, 32) dtype=float32_ref>), (<tf.Tensor 'gradients/encoder/conv2d/BiasAdd_grad/tuple/control_dependency_1:0' shape=(32,) dtype=float32>, <tf.Variable 'encoder/conv2d/bias:0' shape=(32,) dtype=float32_ref>), (<tf.Tensor 'gradients/encoder/conv2d_1/Conv2D_grad/tuple/control_dependency_1:0' shape=(3, 1, 32, 64) dtype=float32>, <tf.Variable 'encoder/conv2d_1/kernel:0' shape=(3, 1, 32, 64) dtype=float32_ref>), (<tf.Tensor 'gradients/encoder/conv2d_1/BiasAdd_grad/tuple/control_dependency_1:0' shape=(64,) dtype=float32>, <tf.Variable 'encoder/conv2d_1/bias:0' shape=(64,) dtype=float32_ref>), (<tf.Tensor 'gradients/encoder/conv2d_2/Conv2D_grad/tuple/control_dependency_1:0' shape=(3, 1, 64, 128) dtype=float32>, <tf.Variable 'encoder/conv2d_2/kernel:0' shape=(3, 1, 64, 128) dtype=float32_ref>), (<tf.Tensor 'gradients/encoder/conv2d_2/BiasAdd_grad/tuple/control_dependency_1:0' shape=(128,) dtype=float32>, <tf.Variable 'encoder/conv2d_2/bias:0' shape=(128,) dtype=float32_ref>), (<tf.Tensor 'gradients/encoder/conv2d_3/Conv2D_grad/tuple/control_dependency_1:0' shape=(6, 1, 128, 512) dtype=float32>, <tf.Variable 'encoder/conv2d_3/kernel:0' shape=(6, 1, 128, 512) dtype=float32_ref>), (<tf.Tensor 'gradients/encoder/conv2d_3/BiasAdd_grad/tuple/control_dependency_1:0' shape=(512,) dtype=float32>, <tf.Variable 'encoder/conv2d_3/bias:0' shape=(512,) dtype=float32_ref>), (<tf.Tensor 'gradients/encoder/dense/MatMul_grad/tuple/control_dependency_1:0' shape=(512, 24) dtype=float32>, <tf.Variable 'encoder/dense/kernel:0' shape=(512, 24) dtype=float32_ref>), (<tf.Tensor 'gradients/encoder/dense/BiasAdd_grad/tuple/control_dependency_1:0' shape=(24,) dtype=float32>, <tf.Variable 'encoder/dense/bias:0' shape=(24,) dtype=float32_ref>), (<tf.Tensor 'gradients/encoder/code_mean/MatMul_grad/tuple/control_dependency_1:0' shape=(24, 6) dtype=float32>, <tf.Variable 'encoder/code_mean/kernel:0' shape=(24, 6) dtype=float32_ref>), (<tf.Tensor 'gradients/encoder/code_mean/BiasAdd_grad/tuple/control_dependency_1:0' shape=(6,) dtype=float32>, <tf.Variable 'encoder/code_mean/bias:0' shape=(6,) dtype=float32_ref>), (<tf.Tensor 'gradients/encoder/code_std_dev/MatMul_grad/tuple/control_dependency_1:0' shape=(24, 6) dtype=float32>, <tf.Variable 'encoder/code_std_dev/kernel:0' shape=(24, 6) dtype=float32_ref>), (<tf.Tensor 'gradients/encoder/code_std_dev/BiasAdd_grad/tuple/control_dependency_1:0' shape=(6,) dtype=float32>, <tf.Variable 'encoder/code_std_dev/bias:0' shape=(6,) dtype=float32_ref>), (<tf.Tensor 'gradients/decoder/dense/MatMul_grad/tuple/control_dependency_1:0' shape=(6, 512) dtype=float32>, <tf.Variable 'decoder/dense/kernel:0' shape=(6, 512) dtype=float32_ref>), (<tf.Tensor 'gradients/decoder/dense/BiasAdd_grad/tuple/control_dependency_1:0' shape=(512,) dtype=float32>, <tf.Variable 'decoder/dense/bias:0' shape=(512,) dtype=float32_ref>), (<tf.Tensor 'gradients/decoder/conv2d/Conv2D_grad/tuple/control_dependency_1:0' shape=(1, 1, 512, 768) dtype=float32>, <tf.Variable 'decoder/conv2d/kernel:0' shape=(1, 1, 512, 768) dtype=float32_ref>), (<tf.Tensor 'gradients/decoder/conv2d/BiasAdd_grad/tuple/control_dependency_1:0' shape=(768,) dtype=float32>, <tf.Variable 'decoder/conv2d/bias:0' shape=(768,) dtype=float32_ref>), (<tf.Tensor 'gradients/decoder/conv2d_1/Conv2D_grad/tuple/control_dependency_1:0' shape=(3, 1, 256, 256) dtype=float32>, <tf.Variable 'decoder/conv2d_1/kernel:0' shape=(3, 1, 256, 256) dtype=float32_ref>), (<tf.Tensor 'gradients/decoder/conv2d_1/BiasAdd_grad/tuple/control_dependency_1:0' shape=(256,) dtype=float32>, <tf.Variable 'decoder/conv2d_1/bias:0' shape=(256,) dtype=float32_ref>), (<tf.Tensor 'gradients/decoder/conv2d_2/Conv2D_grad/tuple/control_dependency_1:0' shape=(3, 1, 128, 128) dtype=float32>, <tf.Variable 'decoder/conv2d_2/kernel:0' shape=(3, 1, 128, 128) dtype=float32_ref>), (<tf.Tensor 'gradients/decoder/conv2d_2/BiasAdd_grad/tuple/control_dependency_1:0' shape=(128,) dtype=float32>, <tf.Variable 'decoder/conv2d_2/bias:0' shape=(128,) dtype=float32_ref>), (<tf.Tensor 'gradients/decoder/conv2d_3/Conv2D_grad/tuple/control_dependency_1:0' shape=(3, 1, 32, 32) dtype=float32>, <tf.Variable 'decoder/conv2d_3/kernel:0' shape=(3, 1, 32, 32) dtype=float32_ref>), (<tf.Tensor 'gradients/decoder/conv2d_3/BiasAdd_grad/tuple/control_dependency_1:0' shape=(32,) dtype=float32>, <tf.Variable 'decoder/conv2d_3/bias:0' shape=(32,) dtype=float32_ref>), (<tf.Tensor 'gradients/decoder/conv2d_4/Conv2D_grad/tuple/control_dependency_1:0' shape=(5, 1, 16, 1) dtype=float32>, <tf.Variable 'decoder/conv2d_4/kernel:0' shape=(5, 1, 16, 1) dtype=float32_ref>), (<tf.Tensor 'gradients/decoder/conv2d_4/BiasAdd_grad/tuple/control_dependency_1:0' shape=(1,) dtype=float32>, <tf.Variable 'decoder/conv2d_4/bias:0' shape=(1,) dtype=float32_ref>)]\n",
      "Reach the definition of loss for VAE\n",
      "WARNING:tensorflow:From /home/shuyu/Documents/Projects/VAE-LSTM-for-anomaly-detection/codes/base.py:126: The name tf.train.Saver is deprecated. Please use tf.compat.v1.train.Saver instead.\n",
      "\n",
      "checkpoint_dir at loading: ../experiments/local-results/NAB/machine_temp/batch-32/NAB-machine_temp-48-12-6-fixedSigma-0.1/checkpoint/\n",
      "Loading model checkpoint ../experiments/local-results/NAB/machine_temp/batch-32/NAB-machine_temp-48-12-6-fixedSigma-0.1/checkpoint/-4981 ...\n",
      "\n",
      "WARNING:tensorflow:From /home/shuyu/Documents/Projects/anomaly-detection/anomaly-env/lib/python3.6/site-packages/tensorflow/python/training/saver.py:1276: checkpoint_exists (from tensorflow.python.training.checkpoint_management) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use standard file APIs to check for files with this prefix.\n",
      "INFO:tensorflow:Restoring parameters from ../experiments/local-results/NAB/machine_temp/batch-32/NAB-machine_temp-48-12-6-fixedSigma-0.1/checkpoint/-4981\n",
      "Model loaded.\n"
     ]
    },
    {
     "data": {
      "image/png": "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irDPvPQSkJxsfp/NVhbR0f4vMyEBGD/ed7vJkyejatWqyMrKQseOHdGvXz9cvHgRnTt3xpgxY/Dqq6/iiy++wPDhw/H8889jwIABGDBgACZPnowXXngBv/zyCwDg3LlzWL16NX777Tf07dsXK1euxJdffomOHTsiOTkZCQkJGDNmDKpWrQqbzYaePXtiy5YtaN26tWm/du7ciWnTpmHlypWIiYnB4MGDMXXqVLRo0QJHjx7Ftm3bAOCKHZYRURkPFCGqV9d+qAC3CREREYUSj0XIXxG6z3z88ceOzIbDhw9j7969iI2NxZ133gkAaDF0esgAACAASURBVN++PVJTUwEAq1evxsMPPwwAeOyxx7BixQrHcu666y6ICFq1aoVatWqhVatWiIqKQosWLRyPnz59Otq1a4e2bdti+/bt2LFjh8d+LVq0CBs3bkTHjh2RkJCARYsWYf/+/WjYsCH279+P559/HnPnzkXFihWDs2FCLKIyHo4eLYvFizmdZtibMkX7bUhDKvG4TYiIiCiUeCxC/irCPuMtMyEjIwtxcXGF6pIvSUlJWLhwIVavXo1y5cohMTER2dnZiImJgeizFERHRyMvL8/nskqXLg0AiIqKcvxt/z8vLw8HDhzAuHHjsH79elSpUgUDBw5Edna2x+UppTBgwAC8++67bvdt3rwZ8+bNw8SJEzF9+nRMnjzZ36ce9iIq4+HixVI4ejTUvSCfpkwp+KAiDbcJERERhRKPRchfEbjPnD9/HlWqVEG5cuWwa9curFmzxmv7Ll264IcffgAATJ06Fd26dbO8rgsXLqB8+fKoVKkSTp48iTlz5nht37NnT/z44484deoUAODs2bM4ePAg0tLSkJ+fj379+mH06NHYtGmT5T5EkojKeAA4nSYRERERERG56927NyZOnIhmzZqhSZMm6Ny5s9f2n3zyCZ544gl88MEHqFGjBr7++mvL62rTpg3atm2Lpk2bom7duujatavX9s2bN8fo0aPRq1cv5OfnIyYmBp9++inKli2LJ554Avn5+QBgmhFxJYi4wAOn0yQiIiIiIiJXpUuXNs08yMzMdPzdv39/9O/fHwBQv359LF682K39FEOmR3x8vKPwo+t9UzxkhCQlJTn+tteDAIAHHngAD5jMlnClZjkYRdxpPDMeiCiSTF17EDM2HA51N4iIiIiIQiaiMh5i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\n",
      "text/plain": [
       "<Figure size 1296x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# load VAE model\n",
    "config = process_config('NAB_config.json')\n",
    "# create the experiments dirs\n",
    "create_dirs([config['result_dir'], config['checkpoint_dir']])\n",
    "# create tensorflow session\n",
    "sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))\n",
    "# create your data generator\n",
    "data = DataGenerator(config)\n",
    "# create a CNN model\n",
    "model_vae = VAEmodel(config)\n",
    "# create a CNN model\n",
    "trainer_vae = vaeTrainer(sess, model_vae, data, config)\n",
    "model_vae.load(sess)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Finish processing the embeddings of the entire dataset.\n",
      "The first a few embeddings are\n",
      "[[-7.63018370e-01  1.75266087e+00  2.90866303e+00 -8.22637528e-02\n",
      "   4.95199084e-01  1.37856638e+00]\n",
      " [-5.76568469e-02 -6.18548952e-02  5.57208247e-02 -1.72741599e-02\n",
      "   9.25339609e-02 -5.74246883e-01]\n",
      " [-3.68950903e-01  6.54548705e-01 -1.52349329e+00 -1.61857858e-01\n",
      "  -7.01683015e-02  3.76645863e-01]\n",
      " [-3.08334902e-02 -2.01373816e-01  1.05614507e+00  1.72580406e-03\n",
      "   7.55314052e-01  3.04207444e-01]\n",
      " [ 6.47048727e-02 -2.89478861e-02 -2.60082297e-02 -5.14978357e-02\n",
      "  -9.49181467e-02 -1.81451976e-01]]\n",
      "Model: \"model\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "input_1 (InputLayer)         [(None, 11, 6)]           0         \n",
      "_________________________________________________________________\n",
      "lstm (LSTM)                  (None, 11, 64)            18176     \n",
      "_________________________________________________________________\n",
      "lstm_1 (LSTM)                (None, 11, 64)            33024     \n",
      "_________________________________________________________________\n",
      "lstm_2 (LSTM)                (None, 11, 6)             1704      \n",
      "=================================================================\n",
      "Total params: 52,904\n",
      "Trainable params: 52,904\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n",
      "../experiments/local-results/NAB/machine_temp/batch-32/NAB-machine_temp-48-12-6-fixedSigma-0.1/checkpoint/lstm/checkpoint\n",
      "LSTM model loaded.\n"
     ]
    }
   ],
   "source": [
    "# load LSTM model\n",
    "lstm_model = lstmKerasModel(data)\n",
    "lstm_model.produce_embeddings(config, model_vae, data, sess)\n",
    "lstm_nn_model = lstm_model.create_lstm_model(config)\n",
    "lstm_nn_model.summary()   # Display the model's architecture\n",
    "\n",
    "# checkpoint path\n",
    "checkpoint_path = config['checkpoint_dir_lstm'] + \"cp.ckpt\"\n",
    "checkpoint_dir = os.path.dirname(checkpoint_path)\n",
    "# Create a callback that saves the model's weights\n",
    "cp_callback = tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_path,\n",
    "                                                 save_weights_only=True,\n",
    "                                                 verbose=1)\n",
    "# load weights if possible\n",
    "lstm_model.load_model(lstm_nn_model, config, checkpoint_path)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The given sequence has 5000 samples\n",
      "(4953, 48, 1)\n",
      "(4425, 12, 48, 1)\n"
     ]
    }
   ],
   "source": [
    "# load normalised time series\n",
    "save_dir = '../datasets/NAB-known-anomaly/'\n",
    "dataset = config['dataset']\n",
    "filename = '{}.npz'.format(dataset)\n",
    "result = dict(np.load(save_dir+filename, allow_pickle=True))\n",
    "if dataset == 'machine_temp':\n",
    "    result['test'] = result['test'][0]\n",
    "    result['idx_anomaly_test'] = result['idx_anomaly_test'][0]\n",
    "    result['t_test'] = result['t_test'][0]\n",
    "\n",
    "# slice into rolling windows and rolling sequences\n",
    "def slice_rolling_windows_and_sequences(config, time_seq):\n",
    "    n_sample = len(time_seq)\n",
    "    print(\"The given sequence has {} samples\".format(n_sample))\n",
    "    n_vae_win = n_sample - config['l_win'] + 1\n",
    "    rolling_windows = np.zeros((n_vae_win, config['l_win']))\n",
    "    for i in range(n_vae_win):\n",
    "        rolling_windows[i] = time_seq[i:i + config['l_win']]\n",
    "        sample_m = np.mean(rolling_windows, axis=1)\n",
    "        sample_std = np.std(rolling_windows, axis=1)\n",
    "\n",
    "        n_lstm_seq = n_sample - config['l_seq']*config['l_win']+1\n",
    "        lstm_seq = np.zeros((n_lstm_seq, config['l_seq'], config['l_win']))\n",
    "    for i in range(n_lstm_seq):\n",
    "        cur_seq = time_seq[i:i+config['l_seq']*config['l_win']]\n",
    "        for j in range(config['l_seq']):\n",
    "            lstm_seq[i,j] = cur_seq[config['l_win']*j:config['l_win']*(j+1)]\n",
    "    \n",
    "    return rolling_windows, lstm_seq, sample_m, sample_std\n",
    "\n",
    "test_windows, test_seq, test_sample_m, test_sample_std = slice_rolling_windows_and_sequences(config, result['test'])\n",
    "test_windows = np.expand_dims(test_windows, -1)\n",
    "test_seq = np.expand_dims(test_seq, -1)\n",
    "print(test_windows.shape)\n",
    "print(test_seq.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Evaluate ELBO and LSTM prediction error on the validation set\n",
    "# evaluate some anomaly detection metrics\n",
    "def evaluate_vae_anomaly_metrics_for_a_window(test_win):\n",
    "    feed_dict = {model_vae.original_signal: np.expand_dims(test_win, 0),\n",
    "                 model_vae.is_code_input: False,\n",
    "                 model_vae.code_input: np.zeros((1, config['code_size']))}\n",
    "\n",
    "    # VAE reconstruction error\n",
    "    recons_win_vae = np.squeeze(sess.run(model_vae.decoded, feed_dict=feed_dict))\n",
    "    test_vae_recons_error = np.sum(np.square(recons_win_vae - test_win))\n",
    "\n",
    "    # VAE latent embedding likelihood\n",
    "    vae_code_mean, vae_code_std = sess.run([model_vae.code_mean, model_vae.code_std_dev], feed_dict=feed_dict)\n",
    "    test_vae_kl = 0.5 * (np.sum(np.square(vae_code_mean)) + \\\n",
    "                            np.sum(np.square(vae_code_std)) - \\\n",
    "                            np.sum(np.log(np.square(vae_code_std))) - config['code_size'])\n",
    "\n",
    "    # VAE ELBO loss\n",
    "    sigma2 = 0.0005\n",
    "    input_dims = model_vae.input_dims\n",
    "    sigma_regularisor = input_dims/2. * np.log(sigma2) + input_dims * np.pi\n",
    "    test_vae_elbo = test_vae_recons_error/sigma2 + test_vae_kl + sigma_regularisor\n",
    "    return test_vae_recons_error, test_vae_kl, test_vae_elbo\n",
    "\n",
    "def evaluate_lstm_anomaly_metric_for_a_seq(test_seq):\n",
    "    feed_dict = {model_vae.original_signal: test_seq,\n",
    "                 model_vae.is_code_input: False,\n",
    "                 model_vae.code_input: np.zeros((1, config['code_size']))}\n",
    "    vae_embedding = np.squeeze(sess.run(model_vae.code_mean, feed_dict=feed_dict))\n",
    "    #print(vae_embedding.shape)\n",
    "    lstm_embedding = np.squeeze(lstm_nn_model.predict(np.expand_dims(vae_embedding[:config['l_seq']-1], 0), batch_size=1))\n",
    "    lstm_embedding_error = np.sum(np.square(vae_embedding[1:] - lstm_embedding))\n",
    "    \n",
    "    # LSTM prediction error\n",
    "    feed_dict_lstm = {model_vae.original_signal: np.zeros((config['l_seq'] - 1, config['l_win'], 1)),\n",
    "                      model_vae.is_code_input: True,\n",
    "                      model_vae.code_input: lstm_embedding}\n",
    "    recons_win_lstm = np.squeeze(sess.run(model_vae.decoded, feed_dict=feed_dict_lstm))\n",
    "    lstm_recons_error = np.sum(np.square(recons_win_lstm - np.squeeze(test_seq[1:])))\n",
    "    return lstm_recons_error, lstm_embedding_error\n",
    "\n",
    "n_val_vae = data.val_set_vae['data'].shape[0]\n",
    "n_val_lstm = data.val_set_lstm['data'].shape[0]\n",
    "\n",
    "val_vae_recons_error = np.zeros(n_val_vae)\n",
    "val_vae_kl_error = np.zeros(n_val_vae)\n",
    "val_vae_elbo_loss = np.zeros(n_val_vae)\n",
    "for i in range(n_val_vae):\n",
    "    val_vae_recons_error[i], val_vae_kl_error[i], val_vae_elbo_loss[i] = evaluate_vae_anomaly_metrics_for_a_window(data.val_set_vae['data'][i])\n",
    "\n",
    "val_lstm_recons_error, val_lstm_embedding_error = np.zeros(n_val_lstm), np.zeros(n_val_lstm)\n",
    "for i in range(n_val_lstm):\n",
    "    val_lstm_recons_error[i], val_lstm_embedding_error[i] = evaluate_lstm_anomaly_metric_for_a_seq(data.val_set_lstm['data'][i])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "from scipy.stats import norm\n",
    "def plot_histogram(test_anomaly_metric, n_bins, title, mean=None, std=None, xlim=None, saveplot=False):\n",
    "    test_anomaly_list = np.squeeze(np.ndarray.flatten(test_anomaly_metric))\n",
    "    his = plt.hist(test_anomaly_list, bins=n_bins, density=True)\n",
    "    if mean is None and std is None:\n",
    "        mean = np.mean(test_anomaly_list)\n",
    "        std = np.std(test_anomaly_list)\n",
    "        legend_label = None\n",
    "    else:\n",
    "        legend_label = 1\n",
    "    x_axis = np.arange(mean-5*std, mean+5*std, std/100)\n",
    "    plt.plot(x_axis, norm.pdf(x_axis,mean,std))\n",
    "    plt.title(title)\n",
    "    plt.xlabel('anomaly score value')\n",
    "    plt.ylabel('probability density')\n",
    "    if xlim is not None:\n",
    "        plt.xlim(0, xlim)\n",
    "    else:\n",
    "        plt.xlim(0, np.amax(test_anomaly_list))\n",
    "    if legend_label is None:\n",
    "        plt.legend(('Fitted Gaussian', 'histogram'))\n",
    "    else:\n",
    "        plt.legend(('normal data distribution','test data distribution (contain anomalies)'))\n",
    "    if saveplot:\n",
    "        savefig(config['result_dir']+'reconstruction_error_histogram.pdf')\n",
    "    else:\n",
    "        plt.show()\n",
    "    threshold_25 = np.percentile(test_anomaly_list, 25)\n",
    "    threshold_75 = np.percentile(test_anomaly_list, 75)\n",
    "    threshold_1 = np.percentile(test_anomaly_list, 99)\n",
    "    idx_large_error = np.squeeze(np.argwhere(test_anomaly_metric > threshold_1))\n",
    "#     print(his[0][-20:])\n",
    "#     print(his[1][-20:])\n",
    "    print(\"25% percentile: {}\".format(threshold_25))\n",
    "    print(\"75% percentile: {}\".format(threshold_75))\n",
    "#     print(\"Median: {}\".format(np.median(test_anomaly_list)))\n",
    "#     print(\"Mean: {}\".format(np.mean(test_anomaly_list)))\n",
    "#     print(\"Std dev: {}\".format(np.std(test_anomaly_list)))\n",
    "    print(\"These windows scored the top 1% of anomaly metric ({}): \\n{}\".format(threshold_1, idx_large_error))\n",
    "    return mean, std"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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0fCoqalh5syZXHLJJQA8/vjjPP30hpuf33fffbzyyivNrqdHjx4F099++23OPPNMdt99dw488EAOOeQQ7r333pa9mGbIfY1bCg8KKbOXFtUy8IoHG9ZrrvlcO7bGzFrbdtttx+zZszdKGzhwICNHjgSygNajRw8OPfRQIAtoY8aMYciQIZtdd0Rw4oknMn78eO68M7uP6IIFC5gypdR7hrbcyJEjG17jlsI9NDOzVvb4448zZswYampquPHGG5k4cSIjRozgiSeeYMqUKVx66aWMGDGC1157jddee43Ro0dz4IEHcsQRRzB37lwA3njjDQ455BCGDRvGVVddVbCeqVOn0rlzZy688MKGtN12240vfelLANTU1HDEEUdwwAEHcMABBzT0FOvbV+/iiy/m1ltvBeCKK65gyJAhDB8+nK997WsA3HPPPey7777st99+fPKTn9ykjGeffZZDDjmE/fffn0MPPZR58+YBcOutt3LyySczevRoBg8ezGWXXdZah7gg99DMrDL84Qr4x0utW+ZHhsGx1zSa5YMPPmDEiBEADBo0aKPTfQMHDuTCCy+kR48eDcHhhBNOYMyYMZxyyikAjBo1ihtvvJHBgwczffp0vvjFLzJ16lS+/OUv8+///u+cc845XH/99QXrnjNnDgcccEDRtu2888488sgjdO3alfnz53PGGWc0OrfskiVLuPfee5k7dy6SWLZsGQBXX301Dz/8MP37929Iy7XPPvvw5JNP0rFjRx599FG+/vWv89vf/haA2bNn8/zzz9OlSxf23ntvvvSlL7Hrrrs2dkhbzAHNzGwzFDrlWKqVK1fy9NNPc+qppzakrVmzBoC//OUvDUHh7LPP5vLLL2+yvIsuuoinnnqKzp07M2PGDNauXcvFF1/M7Nmzqaqq4m9/+1uj+/fu3ZuuXbty3nnnMWbMmIYe2GGHHca5557Laaedxsknn7zJfrW1tYwfP5758+cjibVr1zZsGzVqFL179wZgyJAhLFiwwAHNzKxRTfSktkTr16+nT58+RQNiU0Pahw4d2hD0AK6//nrefffdhmtbEydOZJddduGFF15g/fr1dO3aFYCOHTuyfv36hv3qfwfWsWNHnn32WR577DEmT57Mddddx9SpU7nxxhuZPn06Dz74IAceeCCzZs3aqB3f+MY3+NSnPsW9995LTU0NRx11VMO2Ll26NCxXVVVRV1dXwpFpGV9DMzMro549e7JixYqC67169WLQoEHcc889QDbI44UXXgCyXtGkSZMAuOOOOwqWffTRR7N69WpuuOGGhrRVq1Y1LNfW1tKvXz86dOjA7bffzrp164DsOtsrr7zCmjVrWLZsGY899hiQ9Rhra2s57rjjmDhxYkNbXnvtNT7xiU9w9dVXs9NOO/Hmm29u1I7a2lr69+8P0HAtrj04oJmZldHxxx/Pvffey4gRI3jyyScZN24cP/jBD9h///157bXXuOOOO7j55pvZb7/9GDp0KPfffz8AP/7xj7n++usZNmwYixYtKli2JO677z6eeOIJBg0axEEHHcT48eOZMGECAF/84he57bbb2G+//Zg7dy7du3cHYNddd+W0005j33335bTTTmP//fcHYMWKFYwZM4bhw4dz+OGH86Mf/QiASy+9lGHDhrHvvvty6KGHst9++23Ujssuu4wrr7yS/fffv6w9sKYoItqt8m1Bl36Do9/4axvWPWzfrPW8+uqrfPzjH2/vZthmKvR3lDQrIpr1uwD30MzMrCI4oJmZWUVwQDMzs4rggGZmZhXBAc3MzCpCWQOapNGS5kmqlnRFge1dJN2Vtk+XNDBn25UpfZ6kY5oqU9KgVEZ1KrNzY3VI6itpmqSVkq7LKaenpNk5j3clXZu2nStpcc62f239o2ZmZi1RtplCJFUB1wOfARYCMyRNiYjc+yacByyNiD0ljQMmAKdLGgKMA4YCHwUelbRX2qdYmROAiRExSdKNqewbitUBrAa+AeybHgBExApgRM7rmAX8LqfNd0XExa1wiMysleXe2aI1lPIzm5qaGsaMGcPLL7+8Ufo3v/lNPvnJT/LpT3+64H733Xcfe+21V6vMum+ZcvbQDgKqI+L1iPgQmASMzcszFrgtLU8GRimb62UsMCki1kTEG0B1Kq9gmWmfo1MZpDJPbKyOiHg/Ip4iC2wFpSC6M/Bkyw6BmW2rrr766qLBDFp+X7RC2vPHzFuScga0/kDu/CgLU1rBPBFRB9QCfRvZt1h6X2BZKiO/rmJ1lGIcWY8s99fnn5f0oqTJkgrOsCnpAkkzJc1ct6q2xKrMbGu1bt06zj//fIYOHcpnP/tZPvjgA84991wmT86+Y+ffkuXpp5/e5DYys2fP5uCDD2b48OGcdNJJLF26FIAZM2YwfPhwRowYwaWXXsq++2YnlG699VZOOOEEjj76aEaNGsXKlSsZNWoUBxxwAMOGDWuYcaSmpoZ99tmHc889l7322ouzzjqLRx99lMMOO4zBgwfz7LPPts9BKwMPCmncOOA3OesPAAMjYjjwCBt6fhuJiJsiYmREjKzq1rsNmmlm7Wn+/PlcdNFFzJkzhz59+mw0YXD9LVnmzJnDiy++yFVXXcWhhx7KCSecwA9+8ANmz57NHnvswTnnnMOECRN48cUXGTZsGN/+9rcB+MIXvsDPf/7zhhnzcz333HNMnjyZJ554gq5du3Lvvffy3HPPMW3aNL761a9S/128urqar371q8ydO5e5c+dy55138tRTT/HDH/6Q733ve213oMqsnAFtEZDbgxmQ0grmkdQR6A0saWTfYulLgD6pjPy6itXRKEn7AR0jomFa6YhYEhFr0uovgQObKsfMKt+gQYMa7ol24IEHUlNT07At95Ysv/vd7+jWrdsm+9fW1rJs2TKOPPJIAMaPH8+f//xnli1bxooVKzjkkEMAOPPMMzfa7zOf+Qw77LADkE1s/PWvf53hw4fz6U9/mkWLFvH22283tG/YsGF06NCBoUOHMmrUKCQxbNiwjdq6tStnQJsBDE6jDzuT9Xby7ws+BRiflk8BpqbTe1OAcWmE4iBgMPBssTLTPtNSGaQy72+ijqacwca9MyT1y1k9AXi1hHLMrMI1douU+luynHLKKfz+979n9OjRrVZv/WTDkM3Iv3jxYmbNmsXs2bPZZZddGm4Lk9u+Dh06NKx36NChoq6/lW2UY0TUSboYeBioAm6JiDmSrgZmRsQU4GbgdknVwHtkAYqU727gFaAOuCgi1gEUKjNVeTkwSdJ3gOdT2RSrI5VVA/QCOks6EfhszijM04Dj8l7WJZJOSG16Dzh3Mw+TmVW4lStXsmrVKo477jgOO+wwdt99d2Dj28j07t2b7bffnieffJIjjjiC22+/nSOPPJI+ffrQs2dPpk+fzic+8YmG28kUUltby84770ynTp2YNm0aCxYsaJPXtyUp6w0+I+Ih4KG8tG/mLK8GTs3fL237LvDdUspM6a+TjYLMT2+sjoGNtH33AmlXAlcW28fM2teWeDeLFStWMHbsWFavXk1ENNySZdy4cZx//vn85Cc/YfLkydx2221ceOGFrFq1it13351f/epXANx8882c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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "25% percentile: 106197.46894158289\n",
      "75% percentile: 921958.8553457755\n",
      "These windows scored the top 1% of anomaly metric (19392298.91688778): \n",
      "[ 475  476  477  478  479  480  706  707  786  787 1014]\n"
     ]
    }
   ],
   "source": [
    "# Histogram of VAE ELBO loss - validation set\n",
    "vae_elbo_m, vae_elbo_std = plot_histogram(val_vae_elbo_loss, 100, \n",
    "                                          'VAE ELBO error distribution on the val set', \n",
    "                                          mean=None, std=None, xlim=None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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kZQC1APWlpD3VGC5ma0xs1zgFaBLXKJ3zlUL55xzDhMmTKBdu3Z88MEH9O3bl/vvv5/27duzbNkyXnjhBYYPH07btm1p1aoVr776KgAPPfQQw4YNo3Xr1qxeHf3TFZDExIkTee+992jWrBmdOnViwIAB3HfffQBce+21PPvss7Rt25bFixez9957A9C0aVMuvPBCjjrqKC688ELat28PwKZNm+jRowdt2rSha9euPPjggwDccssttG7dmqOOOoouXbrQtm3bneK49dZbuf3222nfvn25HFGURmbx+TMeVgRfAt0IfvRnAf3MbEHENoOB1mY2KOwcP9/MLpTUChhN0K9xIPAO0BzIAkYARxM0VY0EZpvZIyXFkpWVZYmcyGlPjxj8iMNVVosWLeLII49MdBhuDxX1PkqaY2ZFnu8bt6aqsM/iOmAKkAyMMLMFkoYQ/NhPAoYDo8LO758JzpAi3G4cQUd6HjDYzPKBGZLGA5+F6Z8TNkc555yrGHHt4zCzycDkqLQ7I5a3Ab2j84Xr7gHuKSL9L8BfyjdS55xzsfIhR5xzzpWJVxzOOefKxCsO55xzZeIVh3POuTKpUhcAOucqtz292DVaLKebZ2dn06NHD7744oud0u+8805OOOEETj311CLzTZw4kcMPP7xcRsmtabziiJNYv0CR2/k1Gc6VnyFDhpS4vjyHV8/LyyMlpeb8nHpTlXOuysvPz+eqq66iVatWnH766WzdupXLLruM8ePHA7sOVf7xxx/vMrz63LlzOfbYY2nTpg3nnXce69atA2DWrFm0adOGdu3accstt3DUUUcBwdAe5557LqeccgrdunVj8+bNdOvWjQ4dOtC6desdV6BnZ2fTokULLrvsMg4//HD69+/P1KlTOe6442jevDkzZ85MzIu2B7zicM5VeV999RWDBw9mwYIF1K9ff6eBBwuHKl+wYAHz58/nT3/6E126dOHcc8/l/vvvZ+7cuRx66KFceuml3HfffcyfP5/WrVtz9913A3D55ZfzxBNP7BjhNtJnn33G+PHjee+998jIyGDChAl89tlnvPvuu9x0000UjsyxdOlSbrrpJhYvXszixYsZPXo0H374IQ888AB///vfK+6FKidecTjnqrxmzZrtmJOjY8eOZGdn71gXOVT5K6+8wl577bVL/g0bNrB+/XpOPPFEAAYMGMD777/P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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "25% percentile: 61.25464169658353\n",
      "75% percentile: 147.18842320844698\n",
      "These windows scored the top 1% of anomaly metric (424.59316111206067): \n",
      "[166 233 267 383 406 445 446 882 904 905]\n"
     ]
    }
   ],
   "source": [
    "# Histogram of LSTM reconstruction error - validation set \n",
    "#  --> to decide the anomaly detection threshold\n",
    "lstm_recons_m, lstm_recons_std = plot_histogram(val_lstm_recons_error, 100,  \n",
    "                                              'LSTM reconstruction error distribution on the val set', \n",
    "                                              mean=None, std=None, xlim=None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "All windows' reconstruction error is computed.\n",
      "The total number of windows is 4425\n"
     ]
    }
   ],
   "source": [
    "# Evaluate the anomaly metrics on the test windows and sequences\n",
    "n_test_lstm = test_seq.shape[0]\n",
    "\n",
    "test_lstm_recons_error, test_lstm_embedding_error = np.zeros(n_test_lstm), np.zeros(n_test_lstm)\n",
    "for i in range(n_test_lstm):\n",
    "    test_lstm_recons_error[i], test_lstm_embedding_error[i] = evaluate_lstm_anomaly_metric_for_a_seq(test_seq[i])\n",
    "print(\"All windows' reconstruction error is computed.\")\n",
    "print(\"The total number of windows is {}\".format(len(test_lstm_recons_error)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "25% percentile: 371.0070089488378\n",
      "75% percentile: 2058.7402439634097\n",
      "These windows scored the top 1% of anomaly metric (5820.887733515805): \n",
      "[3413 3415 3416 3417 3418 3459 3460 3461 3462 3463 3464 3465 3466 3504\n",
      " 3505 3506 3507 3508 3509 3510 3511 3512 3551 3552 3553 3554 3555 3556\n",
      " 3557 3558 3559 3560 3561 3562 3563 3564 3565 3579 3580 3581 3582 3603\n",
      " 3604 3605 3606]\n"
     ]
    },
    {
     "data": {
      "image/png": "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PvooJ598Mrfffjt33nknDz/8MAB79+4NNy+NGjWKzZs389lnnzF9+nTOPPNM/vOf//Dss8/Ss2dP5s+fT9euXbnnnnuoV68ehYWFDBgwgK+//prOnTtHLVN+fj6jR49m1qxZtGnThvPPPz+87eijj+bjjz+mSpUqvP/++9xyyy289tpr3HXXXeTm5vLYY48BsG3btqjp/F5//XWWLl3K4sWL+fnnn2nfvj2XXXZZsTTz589nzZo1LFy4EIAtW7ZQp04dHnvsMR588EF69OgRTlu/fn2+/NL7IfXOO+8Uy6d27dosWLCA559/nuuvv54334w9dfi9997Lgw8+GE4zZ86c8LYJEybQrVs3/vWvfzFr1iwuueQS5s+fD8A333zD7Nmz2b59O+3atePqq69O6t4CU3YqZ41j83eQUQVanGCBI821atWKrl27AnDssceSl5fH1q1b2bJlCyeffDIAI0eO5KOP9jdJ+r/IAc444wxEhE6dOnHEEUfQqVMnMjIy6NChA3l5eQC88sordO/enW7durFo0aK4/QfffPMNrVq1om3btogII0aMCG/bunUrw4YNo2PHjvz2t79l0aJFUfMIku6jjz7iggsuIDMzk8aNG9O/f/8D0rRu3ZqVK1dy3XXX8c4773DYYYfFLHfk++J3wQUXhB8/++yzmOkS+eSTT7j44osB6N+/Pxs3bmTbtm0ADB48mOzsbBo0aMDhhx/Ozz//XOLXMalVSWsceVC7GdRrBUvfLu/SVAwJagapkp2dHV7OzMwMN1XFU6NGjah5ZGRkFMsvIyODgoICVq1axYMPPsjcuXOpW7cuo0aNKvHd8r///e/p168fr7/+Onl5efTt2/eg0iVSt25dvvrqK2bOnMmTTz7JK6+8wnPPPRc1beT74ue/ZDO0XKVKFYqKigAoKipi7969JSpjSORneSj1QZniKmeNY/uPULsp1DwCdm2EosLyLpEpRbVr16Zu3bp8/PHHALzwwgvh2kdJbNu2jRo1alC7dm1+/vln3n47/o+No48+mry8PL799lsAXn755fC2rVu30qRJE8DroA6pVasW27dvT5jO75e//CVTp06lsLCQH3/8kdmzZx+QZsOGDRQVFXHOOedw9913h5uiIl8vkalTp4Yf+/TpA3hXW82bNw+A6dOns2/fvoR5n3TSSbz00kuA14TVoEGDuLUg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2rdvH3O+jn379jFmzBjmz59PZmYmy5Yti5puwIAB1K7t3cvVvn17vvvuO5o1a1YszezZs7n//vvZtWsXmzZtokOHDpxxxhkAnH322cD+eWBC7891110HeKMkt2jRIvz6/fr1o1atWtSqVYvatWuH8+nUqVO45rZw4UJuu+02tmzZwo4dOxg4cGDUsgMsXbqUhQsXcuqppwJeE2WjRo0Ab6DJiy66iKFDhzJ06NDwPocffnjcvrGgUtlU1QtYoaorVXUvMAUYEpFmCBAaHnMaMEC8wf6HAFNUdY+qrsKrefQCEJGmwGDg2RKVas92r48jJNurnrM3+BDT5tCkqowfP5758+czf/58VqxYweWXX85RRx3Fl19+SadOnbjtttu46667SvwaoXkyFi5cyBtvvBFzXo6g6RIJzafRt29fnnzySa644oqYadNhPg3/ax7sa2iMAVofeughjjjiCL766ityc3NjHlei8ubn53PNNdcwbdo0FixYwOjRo4t9jqH9g84dEjnXi38emND+o0aN4rHHHmPBggVMmDAh7nmjqnTo0CF8vi9YsIB3330XgLfeeotrr72WL7/8kp49e4bzz8/Pp1q1agnLmkgqf2I3AX7wPV8NHBcrjaoWiMhWoL5b/9+IfZu45YeBmwDft38S9myD+kfuf17VBY49O6Ba3RJlaTxlffls5LwPAwcO5Pe//z0XXXQRNWvWZM2aNWRlZVFQUEC9evUYMWIEderU4dlnny22f+gXb4h/Po0jjzwypfNpPPXUU4wcOZJ169Yxe/ZsLrzwwmJpNmzYQNWqVTnnnHNo165deDbBksynMW7cuKjzaZx33nlJz6fx+9//vkTzabRr146VK1fSpk0b+vfvz1lnncUNN9xA/fr12bRpE/Xq1eP4449nypQpXHzxxbz00ksJa4jR3vumTZuSkZHB5MmTKSws2Xw7oS/tBg0asGPHDqZNm5bwqqzQ+9O/f3+WLVvG999/T7t27cLzoCSyfft2GjVqxL59+3jppZfC51A07dq1Y/369Xz22Wf06dOHffv2sWzZMo455hh++OEH+vXrx4knnsiUKVPYsWMHderUYdmyZeF+noORVm0zInI6sE5V54lI3wRprwSuBGjevPn+DZGd4+Eax45SLq1Jtfr163PCCSfQsWNHTjvtNB544AGWLFkS/mKsWbMmL774IitW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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Histogram of LSTM reconstruction error - test set \n",
    "#  --> to detect anomaly now\n",
    "_, _ = plot_histogram(test_lstm_recons_error, 100,\n",
    "                      'LSTM reconstruction error distribution on the test set', \n",
    "                      mean=lstm_recons_m, std=lstm_recons_std, xlim=None, saveplot=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(4425,)\n"
     ]
    }
   ],
   "source": [
    "# Produce the ground truth anomaly indices \n",
    "# if result['idx_split'][0] == 0:\n",
    "#     idx_anomaly_test = result['idx_anomaly_test']\n",
    "# else:\n",
    "#     idx_anomaly_test = result['idx_anomaly_test'][0]\n",
    "idx_anomaly_test = result['idx_anomaly_test']    \n",
    "anomaly_index_lstm = []\n",
    "test_labels_lstm = np.zeros(n_test_lstm)\n",
    "for i in range(len(idx_anomaly_test)):\n",
    "    idx_start = idx_anomaly_test[i]-(config['l_win']*config['l_seq']-1)\n",
    "    idx_end = idx_anomaly_test[i]+1\n",
    "    if idx_start < 0:\n",
    "        idx_start = 0\n",
    "    if idx_end > n_test_lstm:\n",
    "        idx_end = n_test_lstm\n",
    "    anomaly_index_lstm.append(np.arange(idx_start,idx_end))\n",
    "    test_labels_lstm[idx_start:idx_end] = 1\n",
    "    \n",
    "print(test_labels_lstm.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "def return_anomaly_idx_by_threshold(test_anomaly_metric, threshold):\n",
    "    test_list = np.squeeze(np.ndarray.flatten(test_anomaly_metric))\n",
    "    idx_error = np.squeeze(np.argwhere(test_anomaly_metric > threshold))\n",
    "    \n",
    "    if len(idx_error.shape) == 0:\n",
    "        idx_error = np.expand_dims(idx_error, 0)\n",
    "    \n",
    "    return list(idx_error)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "def augment_detected_idx(idx_detected_anomaly, anomaly_index):\n",
    "    n_anomaly = len(anomaly_index)\n",
    "    idx_detected_anomaly_extended = list(idx_detected_anomaly)\n",
    "    for i in range(n_anomaly):\n",
    "        #print(idx_detected_anomaly)\n",
    "        for j in idx_detected_anomaly:\n",
    "            if j in anomaly_index[i]:\n",
    "                in_original_detection = set(idx_detected_anomaly_extended)\n",
    "                currect_anomaly_win = set(anomaly_index[i])\n",
    "                idx_detected_anomaly_extended = idx_detected_anomaly_extended + list(currect_anomaly_win - in_original_detection)\n",
    "                #print(j)\n",
    "                break\n",
    "                \n",
    "    return list(np.sort(idx_detected_anomaly_extended))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "def count_TP_FP_FN(idx_detected_anomaly, anomaly_index, test_labels):\n",
    "    n_TP = 0\n",
    "    n_FP = 0\n",
    "    n_detection = len(idx_detected_anomaly)\n",
    "    for i in range(n_detection):\n",
    "        if test_labels[idx_detected_anomaly[i]] == 1:\n",
    "            n_TP = n_TP + 1\n",
    "        else:\n",
    "            n_FP = n_FP + 1\n",
    "    \n",
    "    idx_undetected = list(set(np.arange(len(test_labels)))- set(idx_detected_anomaly))\n",
    "    n_FN = 0\n",
    "    for i in idx_undetected:\n",
    "        if test_labels[i] == 1:\n",
    "            n_FN = n_FN + 1\n",
    "    \n",
    "    return n_TP, n_FP, n_FN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "def compute_precision_and_recall(idx_detected_anomaly, anomaly_index, test_labels):\n",
    "    # compute true positive\n",
    "    n_TP, n_FP, n_FN = count_TP_FP_FN(idx_detected_anomaly, anomaly_index, test_labels)\n",
    "    \n",
    "    if n_TP + n_FP == 0:\n",
    "        precision = 1\n",
    "    else:\n",
    "        precision = n_TP / (n_TP + n_FP)\n",
    "    recall = n_TP / (n_TP + n_FN)\n",
    "    if precision + recall == 0:\n",
    "        F1 = 0\n",
    "    else:\n",
    "        F1 = 2* (precision * recall)/(precision + recall)\n",
    "    \n",
    "    return precision, recall, F1, n_TP, n_FP, n_FN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "n_threshold = 200\n",
    "precision = np.zeros(n_threshold)\n",
    "recall = np.zeros(n_threshold)\n",
    "F1 = np.zeros(n_threshold)\n",
    "precision_aug = np.zeros(n_threshold)\n",
    "recall_aug = np.zeros(n_threshold)\n",
    "F1_aug = np.zeros(n_threshold)\n",
    "i = 0\n",
    "threshold_list = np.linspace(np.amin(test_lstm_recons_error), np.amax(test_lstm_recons_error), n_threshold, endpoint=True)\n",
    "threshold_list = np.flip(threshold_list)\n",
    "for threshold in threshold_list:\n",
    "    #print(threshold_list[i])\n",
    "    idx_detection_lstm = return_anomaly_idx_by_threshold(test_lstm_recons_error, threshold)\n",
    "    precision[i], recall[i], F1[i], _, _, _ = compute_precision_and_recall(idx_detection_lstm, \n",
    "                                                                           anomaly_index_lstm, \n",
    "                                                                           test_labels_lstm)\n",
    "    # augment the detection using the ground truth labels\n",
    "    # a method to discount the factor one anomaly appears in multiple consecutive windows\n",
    "    # introduced in \"Unsupervised anomaly detection via variational auto-encoder for seasonal kpis in web applications\"\n",
    "    idx_detection_lstm_augmented = augment_detected_idx(idx_detection_lstm, anomaly_index_lstm)\n",
    "    precision_aug[i], recall_aug[i], F1_aug[i], _, _, _ = compute_precision_and_recall(idx_detection_lstm_augmented, \n",
    "                                                                                       anomaly_index_lstm, \n",
    "                                                                                       test_labels_lstm)\n",
    "    i = i + 1\n",
    "    #print(precision, recall, F1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best F1 score is 0.6753698868581375\n",
      "Best threshold is 1874.4103585343955\n",
      "At this threshold, precision is 0.6771378708551483, recall is 0.6736111111111112\n",
      "Average precision is 0.688382840947445\n",
      "\n",
      "Augmented detection:\n",
      "Best F1 score is 0.9812606473594548\n",
      "Best threshold is 4399.116867614843\n",
      "At this threshold, precision is 0.9632107023411371, recall is 1.0\n",
      "Average precision is 0.9816053511705686\n"
     ]
    }
   ],
   "source": [
    "print(\"Best F1 score is {}\".format(np.amax(F1)))\n",
    "idx_best_threshold = np.squeeze(np.argwhere(F1 == np.amax(F1)))\n",
    "print(\"Best threshold is {}\".format(threshold_list[idx_best_threshold]))\n",
    "print(\"At this threshold, precision is {}, recall is {}\".format(precision[idx_best_threshold], recall[idx_best_threshold]))\n",
    "average_precision = np.sum(precision[1:] * (recall[1:] - recall[:-1]))\n",
    "print(\"Average precision is {}\".format(average_precision))\n",
    "\n",
    "print(\"\\nAugmented detection:\")\n",
    "print(\"Best F1 score is {}\".format(np.amax(F1_aug)))\n",
    "idx_best_threshold = np.squeeze(np.argwhere(F1_aug == np.amax(F1_aug)))\n",
    "print(\"Best threshold is {}\".format(threshold_list[idx_best_threshold]))\n",
    "print(\"At this threshold, precision is {}, recall is {}\".format(precision_aug[idx_best_threshold], \n",
    "                                                                recall_aug[idx_best_threshold]))\n",
    "\n",
    "average_precision_aug = np.sum(precision_aug[1:] * (recall_aug[1:] - recall_aug[:-1]))\n",
    "print(\"Average precision is {}\".format(average_precision_aug))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Threshold is 4399\n",
      "\n",
      "PR evaluation using augmented detection:\n",
      "Precision: 0.9632107023411371\n",
      "Recall: 1.0\n",
      "F1: 0.9812606473594548\n",
      "TP: 1152\n",
      "FP: 44\n",
      "FN: 0\n"
     ]
    }
   ],
   "source": [
    "# Now select a threshold\n",
    "threshold = 4399\n",
    "\n",
    "print(\"Threshold is {}\".format(threshold))\n",
    "idx_detection = return_anomaly_idx_by_threshold(test_lstm_recons_error, threshold)\n",
    "idx_detection_augmented = augment_detected_idx(idx_detection, anomaly_index_lstm)\n",
    "precision, recall, F1, n_TP, n_FP, n_FN = compute_precision_and_recall(idx_detection_augmented, \n",
    "                                                                       anomaly_index_lstm, \n",
    "                                                                       test_labels_lstm)\n",
    "print(\"\\nPR evaluation using augmented detection:\")\n",
    "print(\"Precision: {}\".format(precision))\n",
    "print(\"Recall: {}\".format(recall))\n",
    "print(\"F1: {}\".format(F1))\n",
    "print(\"TP: {}\".format(n_TP))\n",
    "print(\"FP: {}\".format(n_FP))\n",
    "print(\"FN: {}\".format(n_FN))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "def slice_detected_indices_into_seq(idx_detection, interval):\n",
    "    detected_seq = []\n",
    "    i = 0\n",
    "    while i < len(idx_detection):\n",
    "        if i == 0:\n",
    "            cur_seq = [idx_detection[i]]\n",
    "            i = i + 1\n",
    "        else:\n",
    "            if idx_detection[i] - idx_detection[i-1] > interval:\n",
    "                detected_seq.append(cur_seq)\n",
    "                cur_seq = [idx_detection[i]]\n",
    "            else:\n",
    "                cur_seq.append(idx_detection[i])\n",
    "                if i == len(idx_detection) - 1:\n",
    "                    detected_seq.append(cur_seq)\n",
    "            i = i + 1\n",
    "    \n",
    "    print(\"Detected {} sequences\".format(len(detected_seq)))\n",
    "    return detected_seq"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_detected_anomalies(idx_detection, interval, dataset, result, detection_method, augmented_flag=1, y_scale=5, y_lim=None):\n",
    "    detected_seq = slice_detected_indices_into_seq(idx_detection, interval=interval)\n",
    "    t_test = result['t_test']\n",
    "    test = result['test']\n",
    "    idx_anomaly_test = result['idx_anomaly_test']\n",
    "        \n",
    "    # plot detected sequences\n",
    "    fig, axs = plt.subplots(1, 1, figsize=(18, 5), edgecolor='k')\n",
    "    fig.subplots_adjust(hspace=.4, wspace=.4)\n",
    "    axs.plot(t_test, test)\n",
    "    for j in range(len(idx_anomaly_test)):\n",
    "        if j == 0:\n",
    "            axs.plot(idx_anomaly_test[j] * np.ones(20), np.linspace(-y_scale, y_scale, 20), 'r--', label='true anomalies')\n",
    "        else:\n",
    "            axs.plot(idx_anomaly_test[j] * np.ones(20), np.linspace(-y_scale, y_scale, 20), 'r--')\n",
    "        \n",
    "    for i in range(len(detected_seq)):\n",
    "        for j in detected_seq[i]:\n",
    "            if j == detected_seq[0][0]:\n",
    "                axs.plot((j+interval*2) * np.ones(20), np.linspace(-y_scale, -0.8*y_scale, 20), 'g-', label='detected anomalies')\n",
    "            else:\n",
    "                axs.plot((j+interval*2) * np.ones(20), np.linspace(-y_scale, -0.8*y_scale, 20), 'g-')\n",
    "    \n",
    "    for j in range(len(idx_anomaly_test)):\n",
    "        axs.plot(idx_anomaly_test[j] * np.ones(20), np.linspace(-y_scale, y_scale, 20), 'r--')\n",
    "\n",
    "    for i in range(len(detected_seq)):\n",
    "        interval_x = np.asarray([detected_seq[i][0], detected_seq[i][-1]+interval*2])\n",
    "        interval_y = np.asarray([y_scale,y_scale])\n",
    "        if i == 0:\n",
    "            axs.fill_between(interval_x, interval_y, alpha=0.2, color='y', label='detected anomaly windows')\n",
    "        else:\n",
    "            axs.fill_between(interval_x, interval_y, alpha=0.2, color='y')\n",
    "        interval_y = np.asarray([-y_scale,-y_scale])\n",
    "        axs.fill_between(interval_x, interval_y, alpha=0.2, color='y')\n",
    "    axs.grid(True)\n",
    "    axs.set_xlim(0, len(t_test))\n",
    "    if y_lim is None:\n",
    "        axs.set_ylim(-y_scale, y_scale)\n",
    "    else:\n",
    "        axs.set_ylim(-y_scale, y_lim)\n",
    "    axs.set_xlabel(\"timestamp (every {})\".format(result['t_unit']))\n",
    "    axs.set_ylabel(\"normalised readings\")\n",
    "    axs.set_title(\"{} dataset test sequence\\n(normalised by train mean {:.4f} and std {:.4f})\\n Detection method: {}\".format(dataset, \n",
    "                                                                                        result['train_m'], \n",
    "                                                                                        result['train_std'],\n",
    "                                                                                        detection_method))\n",
    "    axs.legend()\n",
    "    savefig(config['result_dir']+'detected_anomalies_{}_aug_{}.pdf'.format(detection_method, augmented_flag))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Detected 2 sequences\n"
     ]
    },
    {
     "data": {
      "image/png": "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SLFnZtSoUYO0tLRC35eSFSIiIiIiIjFnSlRIiVBU16mSFSIiIhK1/S2bsL9lk1iHISJSJI6le15ycjJPP/1MrMModKtWraZp06YAzJ07l5tuuinGEUluNGeFiIiIRG33O0/HOgQRkSJzLN3zkpO3M2bMswwefP1B69LT04mPP/oeHRMSEkhISIh1GJIL9awQERERERE5xt199zBWrPiBNm06MHToPSQlTadr13O58MIBNGuWwKpVq2nRIjGr/KOPPsH9948EYMWKlfTseSFt23aia9dzWbJk6UH1z549lzPP7E5CQkc6dTqbpUu/BwX+76oAACAASURBVOCFFyZyySW/oWfPC2ncuAV33HFv1javvPIaLVu2pUWLRO68876s5VWq1Gbo0Hto3jyB887rzezZc+nevQcNGzZlypR3gaAHRdeu55KYeCaJiWfy+edfHhRTUlISvXv3BmDnzp1ce+21tG3bllatWvH2228D8N1339G2bVtatmxJ8+bNWbZs2ZE2tUTp6EuPiYiISKGpcPI5AOz8YVqMIxERKXzH0j3vgQdG8N13i5g37wsAkpKm8/XXC1iwYDYnn1yfVatW57rtDTfcyFNPPUHDhg2YNWsOQ4bcyrRpUw8o07jxaXz66YfEx8czbdon3HvvcF5//SUAFiz4hrlzZ1K2bFlOP70VQ4bcQKlSpbjrrmHMnj2DatWq0aNHX95+ewr9+vVh586dnHVWVx5+eCT9+1/OsGEj+OCDKSxatIRrr72ePn16UatWTT74YArlypVj2bLlXHHFNcyaNSPXYxg5ciTdu3dn7NixJCcn07ZtW8455xzGjBnDzTffzMCBA9m7dy/79+8/4raW6ChZISIiIlGzfemxDkFEpMjE8p4X173HQcv80ovxwdfDrl3E9b744PVXX4FffQVs3kzcgCsOWJfxv/cPOYbExDacfHL9PMukpqbyxRezuPzyK7OW7dmz56By27fv4Jprrmf58hWYGfv27cta1717N6pUCb5OtEmTxqxevYatW7fStWtnatasCcBvf3sZ06fPpF+/PpQpU4YePc4FoGnTMyhbtiylS5emWbMzWLVqDQD79u3jppv+zIIFCylVqhTff788z+P48MMPmTx5Mo888ggAaWlprFmzhg4dOjBy5EjWrVvHxRdfTMOGDfOsRwqOkhUiIiIiIiJykAoVKmT9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fWgYiIiIiERt34VnxzoEEZEio3ueSOwoWSEiIiJR2/Ov+2IdgohIkdE9TyR2isWcFSIiIlIy2LLV2LLVsQ5DRKRI6J4nEjvqWSEiIiJRq3DW1YDmrBCRY4PueSKxo54VIiIiIiIiIlKsKFkhIiIiIiIiIsWKkhUiIiIiIiJygPvvH8mjjz6RZ5m3357CokWLD6v+5ORknn76mUKJK5aSkpLo3bt3gdU3d+5cbrrppkPaZvjw4TzyyCMFFkOsaM4KERERERGRYmb79tns37+9wOorVaoKVaq0LbD6AN5++x169erB6ac3OeRtk5O3M2bMswwefH2BxnS0SUhIICEhIdZhxIR6VoiIiEjU9v22N/t+W3CfGImIFGexvOft37+d0qWPL7CfaBIfDzzwME2atKRLl3P5/vtlWctXrFhJz54X0rZtJ7p2PZclS5by+edfMmXKVO64417atOnAihUrcywHsHHjRvr3v5zWrdvTunV7Pv/8S+6+exgrVvxAmzYdGDr0HgAeeWQU7dt3oVWrdgwf/rd844o0ZcpUOnToRkJCR847rzcbN24Egp4Y1103mO7de9CwYVNGjx6Ttc1jjz1G06ZNadq0KaNGjQJg1apVNG7cmEGDBnHaaacxcOBApk2bxplnnknDhg2ZPXs2ALNnz6ZDhw60atWKjh07snTp0gPiycjIoGHDhmzatCnrdYMGDbJeZ2rWrBnJycm4OzVq1GD8+PEAXHXVVXz00UcH9NQYPnw41157Ld26deOUU07hn//8Z1Y9I0eO5LTTTqNTp04HxDJ//nzat29P8+bNueiii9i2bRs///wzbdq0AWDBggWYGWvWrAHg1FNPZdeuXbz++us0bdqUFi1a0KVLl9wumUKlnhUiIiIStT0P3xbrEEREisyxdM+bN+9rXnvtDebN+5z09HQSEzvRunUrAG644UaeeuoJGjZswKxZcxgy5FamTZtKnz496dWrB/37XwTAuef2yrHcLbfcTpcunXnzzVfYv38/qampPPDACL77bhHz5n0BwIcffszy5cv54otPcXcuvHAA06d/RoUKFXKNK1KnTh34/PNPMDOee24c//jHKB555EEAliz5no8/nkpKSgqnn96KIUP+xMKFC3n++eeZNWsW7k67du3o2rUr1apVY/ny5bz++uuMHTuWxMREXnrpJT777DMmT57MAw88wFtvvUXjxo2ZMWMG8fHxTJs2jbvvvps333wzK564uDiuuOIKXnzxRW655RamTZtGixYtqFmz5gFxn3nmmcycOZN69epxyimnMGPGDK666iq++OILnn76aebMmXNA+SVLlvDJJ5+QkpJCo0aNGDx4MAsXLuSVV15h/vz5pKen07p166xkxFVXXcXo0aPp2rUrw4YN4/7772fUqFGkpaWxY8cOZsyYQUJCAjNmzKBTp07UqlWL8uXLM2LECD744APq1q1LcnJyAV1lh0bJChEREYla3JxvAMhIbBbjSERECt+xdM/77LPP6devD+XLlwegd++eAKSmpvLFF7O4/PIrs8ru2bPnoO3zKvfJJ58ybtyzAJQqVYoqVaqwbduBD8AfffQxH330PxISOob17WT58hWkpKTmGFd269at5ze/uZoNGzawd+8+6tevl7WuZ8/zKVu2LGXLlqVWrZps3LiRzz77jIsuuogKFSoAcPHFFzNjxgz69u3LySefTLNmwTk/44wzOPvsszEzmjVrxqpVqwDYvn07V199NcuWLcPM2Ldv30ExXXvttfTr149bbrmFsWPHcs011xxUpnPnzkyfPp169eoxePBgnnnmGdavX0+1atWyYovUq1eviGOpxcaNG5kxYwYXXXRRVhv17ds3K8bk5GS6du0KwNVXX82ll14KQMeOHZk5cybTp0/n7rvv5v3338fd6dy5MxAkUQYNGsSAAQO4+OKLc2zzwqZkhYiIiESt/EU3ApC6Lim2gYiIFAHd84LhC1WrVsnqAXGk5XLj7txxx5+5/vrfHbD8iSeejGr7m2++jVtvvZE+fXqRlDSdESMeyFpXtmzZrN9LlSpFenp6nnVFlo+Li8t6HRcXl7Xtfffdx1lnncWkSZNYtWoV3bp1O6iek046idq1a/O///2P2bNn8+KLLx5UpkuXLjz55JOsWbOGkSNHMmnSJN54442spEFesUVzLLnp0qULM2bMYPXq1fTr14+///3vmBm9evUCYMyYMcyaNYt3332XNm3aMG/ePGrUqHFY+zpcmrNCRERERETkGNe585lMnvwOu3fvJiUlhXfffQ+AypUrU79+fd54479AkFRYsCDocVKpUkVSUlLzLde9ezfGjPkPAPv372f79u0HbAtw3nnn8PzzE0hNDZatX/8jP//8c65xZbdjxw7q1KkDwIQJL0VxvJ1566232LVrFzt37mTSpEm5Jghysn37durWrQvAuHHjci133XXXccUVV3DppZdSqlSpg9afdNJJbN68mWXLlnHKKafQqVMnHnnkkUOaJ6JLly689dZbWW00ZcoUAKpUqUK1atWYMWMGABMmTMjqZdG5c2cmTpxIw4YNiYuLo3r16kydOpVOnToBsGLFCtq1a8eIESOoWbMma9eujTqegqJkhYiIiIiIyDGudeuWXHppf1q37kCvXheTkNA6a92ECc8xdux4WrduT/PmCUye/A4AAwZcwqOPjiIhoSMrVqzMtdzjjz9MUtJ0WrZsS9u2nVi0aAk1atSgY8f2tGiRyNCh93DeeWfzm99cSqdO3WnZsi0DBlxBSkpqnnFFGjbsbi6//Eratu0UVQ+A1q1bM2jQINq2bUu7du247rrraNXq4LkwcjN06FDuuusuWrVqlWfvhr59+5KamprjEJBM7dq147TTTgOCJML69euzkgbRaN26NZdddhktWrTgggsuIDExMWvdCy+8wO23307z5s2ZP38+w4YNA6B+/fq4e1ZSpFOnTlStWpVq1aoBcPvtt9OsWTOaNm1Kx44dadGiRdTxFBRz9yLf6eFq1KiRZ59lVUR+kZSUlGMXNJFDsWXL+5QpUzP/giXQnDkbSUysHeswSrSKJ3YDju0u0UebvXs3UaNGD0DvI0fqaL5/Hqsi73mF/R6yZk08jRs3yHpdEr66tCRyTyc+vkqR7W/u3LnceuutWb0bjhaLFy+mSZMDv7LWzOa5e4F9z6rmrBARERERESlmlFgo+R566CGefvrpHOeqkPwpWSEiIiJR23vDZbEOQUSkyOieJ0fizjvv5M4774x1GCWWkhUiIiIStb33Do51CCIiRUb3PJHY0QSbIiIiErW4j2YS99HMWIchIlIkivae55Sk+QTl2FVU16l6VoiIiEjUyl9zD6AJNkXk2FCU97wyZZytW7dTvXoVzKzQ9ydyONydLVu2UK5cuULfl5IVIiIiIiIiMXb88Rls3vwzmzZtApSsKCzu+ylV6rhYh1GilStXjhNPPLHQ96NkhYiIiIiISIzFx8MJJ2TEOoyjXuTXNUvxpjkrRERERERERKRYUbJCRERERERERIoVDQMRERGRqO358zWxDkFEpMjonicSO0pWiIiISNT23Xp1rEMQESkyuueJxI6GgYiIiEjU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\n",
      "text/plain": [
       "<Figure size 1296x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_detected_anomalies(idx_detection_augmented, \n",
    "                        interval=config['l_win']*config['l_seq']/2, \n",
    "                        dataset=dataset, \n",
    "                        result=result, \n",
    "                        detection_method='lstm reconstruction error',\n",
    "                        augmented_flag=1,\n",
    "                        y_scale=5,\n",
    "                        y_lim=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "anomaly-env",
   "language": "python",
   "name": "anomaly-env"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
